#ifndef ARRAY_QUEUE_H
#define ARRAY_QUEUE_H
#include <iostream>
#include <vector>
using namespace std;

template <class Object>
class Queue
{
  public:
  	explicit Queue(int capacity = 10);

	bool isEmpty() const;
	bool isFull() const;
	const Object & getFront() const;

	void makeEmpty();
	Object dequeue();
	void enqueue(const Object &x);

  private:
  	vector<Object> theArray;
	int currentSize;
	int front;
	int back;

	void increment(int &x);
};

#endif
